package com.chain.qs.modules.biz.web;

import com.chain.qs.common.web.BaseController;
import com.chain.qs.modules.biz.entity.EventTemplateItem;
import com.chain.qs.modules.biz.entity.EventTemplate;
import com.chain.qs.modules.biz.service.EquipmentParameterService;
import com.chain.qs.modules.biz.service.EventTemplateItemService;
import com.chain.qs.modules.biz.service.EventTemplateService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * 事件策略模板子项
 * Created by fgx on 2016/8/31.
 */
@Controller
@RequestMapping("${adminPath}/biz/eti")
public class EventTemplateItemController extends BaseController {

    @Resource
    private EventTemplateItemService eventTemplateItemService;
    @Resource
    private EventTemplateService eventTemplateService;
    @Resource
    private EquipmentParameterService equipmentParameterService;

    @ModelAttribute("eventTemplateItem")
    public EventTemplateItem get(String id) {
        EventTemplateItem eventTemplateItem;
        if (id != null && !id.equals("")) {
            eventTemplateItem = eventTemplateItemService.get(id);
        } else {
            eventTemplateItem = new EventTemplateItem();
        }
        return eventTemplateItem;
    }


    @ModelAttribute
    public EventTemplate getEventTemplate(String eventTemplateId){
        EventTemplate eventTemplate;
        if(eventTemplateId!=null && !eventTemplateId.equals("")){
            eventTemplate = eventTemplateService.get(eventTemplateId);
        }else {
            eventTemplate= new EventTemplate();
        }
        return eventTemplate;
    }

    @RequestMapping(value = {"", "list"})
    public String list(Model model, EventTemplateItem eventTemplateItem) {
        model.addAttribute("list", eventTemplateItemService.findList(eventTemplateItem));
        return "modules/biz/eventTemplateItemList";
    }

    @RequestMapping(value = "form")
    public String form(Model model,String eventTemplateId) {
        EventTemplate eventTemplate = eventTemplateService.get(eventTemplateId);
        model.addAttribute("paramList",equipmentParameterService.paramList(eventTemplate.getEquipmentId()));
        return "modules/biz/eventTemplateItemForm";
    }

    @ResponseBody
    @RequestMapping(value = "save")
    public String save(EventTemplateItem eventTemplateItem) {
        if(eventTemplateItem.getRelationOperator().equals("")){
            eventTemplateItem.setComparisonOperator2("");
            eventTemplateItem.setOperand2("");
        }
        eventTemplateItemService.save(eventTemplateItem);
        return "success";
    }

    @RequestMapping(value = "delete")
    public String delete(RedirectAttributes redirectAttributes, EventTemplateItem eventTemplateItem) {
        eventTemplateItemService.delete(eventTemplateItem);
        addMessage(redirectAttributes, "模板删除成功");
        return "redirect:" + adminPath + "/biz/eti/list?eventTemplateId=" + eventTemplateItem.getEventTemplateId();
    }

    @RequestMapping(value = "listByTemplateId")
    public String listByTemplateId(Model model, String templateId, HttpServletResponse response){
        List<EventTemplateItem> templateItemList=eventTemplateItemService.findByTemplateId(templateId);
        return renderString(response,templateItemList);
    }

}
